package com.aidex.biz.domain;

import javax.validation.Valid;
import java.math.BigDecimal;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.aidex.common.utils.log.annotation.FieldRemark;
import com.aidex.common.utils.log.annotation.LogField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.aidex.common.annotation.Excel;
import com.aidex.common.core.domain.BaseEntity;
/**
 * 资方结算对象 biz_cap_bill
 * @author sean
 * @email 2074844820@qq.com
 * @date 2023-12-17
 */
@Data
public class CapBill extends BaseEntity<CapBill>
{
    private static final long serialVersionUID = 1L;



    /** 进件编号 */
    @Excel(name = "进件编号")
    private String jinjianId;

    /** 结算金额 */
    @Excel(name = "结算金额")
    private BigDecimal amount;

    /** 结算类型 */
    @Excel(name = "结算类型", dictType = "zifang_jiesuan_type")
    private String type;

    /** 结算比例 */
    @Excel(name = "结算比例")
    private BigDecimal lv;

    /** 客户姓名 */
    @Excel(name = "客户姓名")
    private String cusName;

    /** 客服姓名 */
    @Excel(name = "客服姓名")
    private String serviceName;

    /** 客服ID */
    @Excel(name = "客服ID")
    private String serviceId;

    /** 客户ID */
    private String customerId;

    /** 签单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签单时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date qdTime;

    /** 签单时间开始 */
    private String beginQdTime;

    /** 签单时间结束 */
    private String endQdTime;
    /** 放款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "放款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date fkTime;

    /** 放款时间开始 */
    private String beginFkTime;

    /** 放款时间结束 */
    private String endFkTime;
    /** 排序 */
    private Integer sort;

    /** 结算状态（0待结算 1 已结算） */
    @Excel(name = "结算状态", dictType = "zifang_jiesuan_status")
    @NotBlank(message = "结算状态（0待结算 1 已结算）不允许为空")
    private String status;

    /** 申请金额 */
    @Excel(name = "申请金额")
    private BigDecimal sqAmount;

    /** 放款金额 */
    @Excel(name = "放款金额")
    private BigDecimal fkAmount;

    private  String productId;
    private String productName;
    private String orgType;


    public void setJinjianId(String jinjianId) 
    {
        this.jinjianId = jinjianId;
    }

    public String getJinjianId() 
    {
        return jinjianId;
    }

    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }

    public void setType(String type) 
    {
        this.type = type;
    }

    public String getType() 
    {
        return type;
    }

    public void setLv(BigDecimal lv) 
    {
        this.lv = lv;
    }

    public BigDecimal getLv() 
    {
        return lv;
    }

    public void setCusName(String cusName) 
    {
        this.cusName = cusName;
    }

    public String getCusName() 
    {
        return cusName;
    }

    public void setServiceName(String serviceName) 
    {
        this.serviceName = serviceName;
    }

    public String getServiceName() 
    {
        return serviceName;
    }

    public void setServiceId(String serviceId) 
    {
        this.serviceId = serviceId;
    }

    public String getServiceId() 
    {
        return serviceId;
    }

    public void setCustomerId(String customerId) 
    {
        this.customerId = customerId;
    }

    public String getCustomerId() 
    {
        return customerId;
    }

    public void setQdTime(Date qdTime) 
    {
        this.qdTime = qdTime;
    }

    public Date getQdTime() 
    {
        return qdTime;
    }

    public void setFkTime(Date fkTime) 
    {
        this.fkTime = fkTime;
    }

    public Date getFkTime() 
    {
        return fkTime;
    }

    public void setSort(Integer sort) 
    {
        this.sort = sort;
    }

    public Integer getSort() 
    {
        return sort;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("userId", getUserId())
            .append("deptId", getDeptId())
            .append("userName", getUserName())
            .append("deptName", getDeptName())
            .append("companyId", getCompanyId())
            .append("jinjianId", getJinjianId())
            .append("amount", getAmount())
            .append("type", getType())
            .append("lv", getLv())
            .append("cusName", getCusName())
            .append("serviceName", getServiceName())
            .append("serviceId", getServiceId())
            .append("customerId", getCustomerId())
            .append("qdTime", getQdTime())
            .append("fkTime", getFkTime())
            .append("sort", getSort())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("id", getId())
            .append("createBy", getCreateBy())
            .append("createDept", getCreateDept())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("updateIp", getUpdateIp())
            .append("version", getVersion())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
